package com.github.tomakehurst.wiremock.spi;

import com.github.tomakehurst.wiremock.stubbing.ServeEvent;
import java.util.Optional;
import java.util.List;
import java.util.UUID;

public interface RequestJournalSpi {

    /** 保存日志：接收 common 原生 ServeEvent */
    void saveServeEvent(ServeEvent serveEvent);

    /** 按 ID 查询日志：返回 common 原生 ServeEvent */
    Optional<ServeEvent> getServeEventById(UUID id);

    /** 查询所有日志：返回 common 原生 ServeEvent 列表 */
    List<ServeEvent> listAllServeEvents();

    /** 删除日志：按 common 原生 UUID 操作 */
    void deleteServeEvent(UUID id);

    /** 清理旧日志：按最大保留数清理 */
    void cleanupOldEvents(int maxEntries);
}